package controllori;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import elementi.giocatori.Giocatore;


public abstract class ControllorePc extends Controllore implements KeyListener{
	
	private int [] tasti;
	/* destra, sinistra, su, giu, abilita, dardo lento, darto veloce
	 * ruota antiorario, ruota orario
	 */
	
	public ControllorePc(Giocatore giocatore, int [] tasti) {
		super(giocatore);
		setTasti(tasti);
		
	}

	@Override
	public void keyPressed(KeyEvent e) {
		int key = e.getKeyCode(); 
		
		if(key == getTasti()[0]) getGiocatore().setVelocitax(2);
		else if(key == getTasti()[1]) getGiocatore().setVelocitax(-2);
		else if(key == getTasti()[2]) getGiocatore().setVelocitay(-2);
		else if(key == getTasti()[3]) getGiocatore().setVelocitay(2);
		else if(key == getTasti()[4]) getGiocatore().usaAbilita();
		else if(key == getTasti()[5]) getGiocatore().sparaDardoLento();
		else if(key == getTasti()[6]) getGiocatore().sparaDardoVeloce();
					
	}
	
	@Override
	public void keyReleased(KeyEvent e) {
		int key = e.getKeyCode();
			if(key == getTasti()[2] || key == getTasti()[3]) getGiocatore().setVelocitay(0);
			if(key == getTasti()[0] || key == getTasti()[1]) getGiocatore().setVelocitax(0);
	}
	
	@Override
	public void keyTyped(KeyEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public int[] getTasti() {
		return tasti;
	}

	public void setTasti(int[] tasti) {
		this.tasti = tasti;
	}
	
	/**
	 * Ma questi metodi si presuppone forniscano un comportamento?
	 * O forse siete in grado di dire cosa devono fare?
	 * Alessandro
	 */
	
	
}
